
#pragma once


#include <string>
#include <vector>
#include <opencv2\core\core.hpp>

namespace Utils

{
	
	std::string ToLowerCase(const std::string & str)
	{
		std::string strOut;
		strOut.resize(str.size());


		std::transform(str.begin(),str.end(),strOut.begin(),::tolower);
		return strOut;
	}

	std::string to_string(int n) { return std::to_string((long long)n);}
	std::vector<cv::Rect> DetectBlobAgglomeration(const cv::Mat& im,int maxDistanceX, int maxDistanceY, int maxWidth, int maxHeight);
	std::string GetFileNameWithoutExtension(const std::string &filename);
	bool GetFilesInDirectory(const std::string directoryName,const std::string pattern,std::vector<std::string>&files);
	std::string GetApplicationDirectory();
	
	bool DrawObjectRects(const std::vector<cv::Rect> &objs,cv::Mat& img,const int color);

	std::vector<cv::Point> GetVectorOfCenters(const std::vector<cv::Rect>&rects);
};